package com.mojawa.mj_util.time

import android.app.ActivityManager
import android.content.Context
import android.content.Intent
import androidx.core.content.ContextCompat.getSystemService

/**
 * 关于时间转换
 */
object MJTimeUtil {
    /**
     * 暂停恢复
     * @Volatile保证可见
     */
    @Volatile var isPaused: Boolean = false
    @Volatile var isFirstLocationAfterResume = true  // 标记恢复后的第一个位置更新

    /**
     * 转换为小时 -- 分钟 -- 秒
     */
    fun longToTimeString(seconds: Long): String {
        val hours = seconds / 3600
        val minutes = (seconds % 3600) / 60
        val secs = seconds % 60
        return String.format("%02d:%02d:%02d", hours, minutes, secs)
    }

    /**
     * seconds -- 秒
     * kilometers -- 公里
     * 返回配速
     */
    fun calculatePace(seconds: Long, kilometers: Double): String {
        // 1. 将时间从秒转换为分钟
        val totalMinutes = seconds / 60.0
        // 2. 计算每公里的时间（分钟）
        val pacePerKm = totalMinutes / kilometers
        // 判断配速是否小于2分钟/公里或大于18分钟/公里
        if (pacePerKm < 2 || pacePerKm > 18) {
            return "--"
        }
        // 3. 将配速分离为分钟和秒
        val minutes = pacePerKm.toInt() // 整数部分为分钟
        val seconds = ((pacePerKm - minutes) * 60).toInt() // 小数部分转换为秒
        return String.format("%02d'%02d", minutes, seconds)
    }


    fun isServiceRunning(context: Context, serviceClass: Class<*>): Boolean {
        val manager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
        for (service in manager.getRunningServices(Int.MAX_VALUE)) {
            if (serviceClass.name == service.service.className) {
                return true
            }
        }
        return false
    }

    /**
     * 开启服务
     */
    fun startServiceCompat(context: Context,intent: Intent) {
        if (MJCurrentSdkVersion.sdk14()) {
            context.startForegroundService(intent)
        } else {
            context.startService(intent)
        }
    }

    /**
     * 关闭
     */
    fun closeServiceCompat(context: Context,intent: Intent) {
      context.stopService(intent)
    }

}